-- Network Working Group                                          T. Nadeau
-- Request for Comments: 4368                                      S. Hegde
-- Category: Standards Track                            Cisco Systems, Inc.
--                                                             January 2006


--          Multiprotocol Label Switching (MPLS) Label-Controlled
--            Asynchronous Transfer Mode (ATM) and Frame-Relay
--                     Management Interface Definition

   MPLS-LC-ATM-STD-MIB DEFINITIONS ::= BEGIN
   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE
         FROM SNMPv2-SMI
      MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF
      RowStatus, StorageType, TruthValue
         FROM SNMPv2-TC
      AtmVpIdentifier
         FROM ATM-TC-MIB
      mplsStdMIB, MplsAtmVcIdentifier
         FROM MPLS-TC-STD-MIB
      mplsInterfaceIndex
         FROM MPLS-LSR-STD-MIB
      ;

   mplsLcAtmStdMIB MODULE-IDENTITY
      LAST-UPDATED "200601120000Z"  -- 12 January 2006
      ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group"
      CONTACT-INFO
          "        Thomas D. Nadeau
           Postal: Cisco Systems, Inc.
                   250 Apollo Drive
                   Chelmsford, MA 01824
           Tel:    +1-978-244-3051
           Email:  tnadeau@cisco.com

                   Subrahmanya Hegde
           Postal: Cisco Systems, Inc.
                   225 East Tazman Drive
           Tel:    +1-408-525-6562
           Email:  subrah@cisco.com
           General comments should be sent to mpls@uu.net
          "
      DESCRIPTION
          "This MIB module contains managed object definitions for
           MPLS Label-Controlled ATM interfaces as defined in
           [RFC3035].

           Copyright (C) The Internet Society (2006).  This
           version of this MIB module is part of RFC 4368; see
           the RFC itself for full legal notices."

      -- Revision history.
      REVISION
           "200601120000Z"  -- 12 January 2006
      DESCRIPTION
          "Initial revision, published as part of RFC 4368."
      ::= { mplsStdMIB 9 }

   -- Top level components of this MIB module.

   -- Tables, Scalars, Notifications, Conformance

   mplsLcAtmStdNotifications OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 0 }

   mplsLcAtmStdObjects       OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 1 }

   mplsLcAtmStdConformance   OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 2 }

   -- MPLS LC-ATM Interface Configuration Table.
   mplsLcAtmStdInterfaceConfTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsLcAtmStdInterfaceConfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
          "This table specifies per-interface MPLS LC-ATM
           capability and associated information.  In particular,
           this table sparsely extends the MPLS-LSR-STD-MIB's
           mplsInterfaceConfTable."
      ::= { mplsLcAtmStdObjects 1 }

   mplsLcAtmStdInterfaceConfEntry OBJECT-TYPE
      SYNTAX        MplsLcAtmStdInterfaceConfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
          "An entry in this table is created by an LSR for
           every interface capable of supporting MPLS LC-ATM.
           Each entry in this table will exist only if a
           corresponding entry in ifTable and mplsInterfaceConfTable
           exists.  If the associated entries in ifTable and
           mplsInterfaceConfTable are deleted, the corresponding
           entry in this table must also be deleted shortly
           thereafter."
      INDEX       { mplsInterfaceIndex }
         ::= { mplsLcAtmStdInterfaceConfTable 1 }

   MplsLcAtmStdInterfaceConfEntry ::= SEQUENCE {
      mplsLcAtmStdCtrlVpi                 AtmVpIdentifier,
      mplsLcAtmStdCtrlVci                 MplsAtmVcIdentifier,
      mplsLcAtmStdUnlabTrafVpi            AtmVpIdentifier,
      mplsLcAtmStdUnlabTrafVci            MplsAtmVcIdentifier,
      mplsLcAtmStdVcMerge                 TruthValue,
      mplsLcAtmVcDirectlyConnected        TruthValue,
      mplsLcAtmLcAtmVPI                   AtmVpIdentifier,
      mplsLcAtmStdIfConfRowStatus         RowStatus,
      mplsLcAtmStdIfConfStorageType       StorageType
   }

   mplsLcAtmStdCtrlVpi OBJECT-TYPE
      SYNTAX        AtmVpIdentifier
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the VPI value over which this
           LSR is willing to accept control traffic on
           this interface."
      ::= { mplsLcAtmStdInterfaceConfEntry 1 }

   mplsLcAtmStdCtrlVci OBJECT-TYPE
      SYNTAX        MplsAtmVcIdentifier
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the VCI value over which this
           LSR is willing to accept control traffic
           on this interface."
      ::= { mplsLcAtmStdInterfaceConfEntry 2 }

   mplsLcAtmStdUnlabTrafVpi OBJECT-TYPE
      SYNTAX        AtmVpIdentifier
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the VPI value over which this
           LSR is willing to accept unlabeled traffic
           on this interface."
      ::= { mplsLcAtmStdInterfaceConfEntry 3 }

   mplsLcAtmStdUnlabTrafVci OBJECT-TYPE
      SYNTAX        MplsAtmVcIdentifier
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the VCI value over which this
           LSR is willing to accept unlabeled traffic
           on this interface."
      ::= { mplsLcAtmStdInterfaceConfEntry 4 }

   mplsLcAtmStdVcMerge OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "If set to true(1), indicates that this interface
           is capable of ATM VC merge; otherwise, it MUST
           be set to false(2)."
      DEFVAL     { false }
      ::= { mplsLcAtmStdInterfaceConfEntry 5 }

   mplsLcAtmVcDirectlyConnected OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
        "This value indicates whether an LC-ATM is directly
         or indirectly (by means of a VP) connected.  If set to
         true(1), indicates that this interface is directly
         connected LC-ATM; otherwise, it MUST be set to
         false(2).  Note that although it can be intimated
         from RFC 3057 that multiple VPs may be used,
         in practice only a single one is used, and therefore
         the authors of this MIB module have chosen to model
         it as such."
      DEFVAL     { true }
      ::= { mplsLcAtmStdInterfaceConfEntry 6 }

   mplsLcAtmLcAtmVPI OBJECT-TYPE
      SYNTAX        AtmVpIdentifier
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
        "This is the VPI value used for indirectly
         connected LC-ATM interfaces.  For these
         interfaces, the VPI field is not
         available to MPLS, and the label MUST be
         encoded entirely within the VCI field
         (see [RFC3035]).  If the interface is directly
         connected, this value MUST be set to zero."
      DEFVAL  { 0 }
      ::= { mplsLcAtmStdInterfaceConfEntry 7 }

   mplsLcAtmStdIfConfRowStatus OBJECT-TYPE
      SYNTAX        RowStatus
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This object is used to create and
           delete entries in this table.  When configuring
           entries in this table, the corresponding
           ifEntry and mplsInterfaceConfEntry
           MUST exist beforehand.  If a manager attempts to
           create an entry for a corresponding
           mplsInterfaceConfEntry that does not support LC-ATM,
           the agent MUST return an inconsistentValue error.
           If this table is implemented read-only, then the
           agent must set this object to active(1) when this
           row is made active.  If this table is implemented
           writable, then an agent MUST not allow modification
           to its objects once this value is set to active(1),
           except to mplsLcAtmStdIfConfRowStatus and
           mplsLcAtmStdIfConfStorageType."
      ::= { mplsLcAtmStdInterfaceConfEntry 8 }

    mplsLcAtmStdIfConfStorageType OBJECT-TYPE
      SYNTAX        StorageType
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "The storage type for this conceptual row.
           Conceptual rows having the value 'permanent(4)'
           need not allow write-access to any columnar
           objects in the row."
      DEFVAL { nonVolatile }
      ::= { mplsLcAtmStdInterfaceConfEntry 9 }

   -- End of mplsLcAtmStdInterfaceConfTable

   -- Module compliance.

   mplsLcAtmStdCompliances
      OBJECT IDENTIFIER ::= { mplsLcAtmStdConformance 1 }

   mplsLcAtmStdGroups
      OBJECT IDENTIFIER ::= { mplsLcAtmStdConformance 2 }

   -- Compliance requirement for full compliance

   mplsLcAtmStdModuleFullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
          "Compliance statement for agents that provide
           full support for MPLS-LC-ATM-STD-MIB.  Such
           devices can be monitored and also be configured
           using this MIB module."
      MODULE -- this module
         MANDATORY-GROUPS {
            mplsLcAtmStdIfGroup
         }

         OBJECT       mplsLcAtmStdIfConfRowStatus
         SYNTAX       RowStatus { active(1), notInService(2) }
         WRITE-SYNTAX RowStatus { active(1), notInService(2),
                                  createAndGo(4), destroy(6)
                                }
         DESCRIPTION "Support for createAndWait and notReady is
                      not required."

      ::= { mplsLcAtmStdCompliances 1 }

   -- Compliance requirement for read-only implementations.

   mplsLcAtmStdModuleReadOnlyCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
          "Compliance requirement for implementations that only
           provide read-only support for MPLS-LC-ATM-STD-MIB.
           Such devices can be monitored but cannot be configured
           using this MIB module.
          "
      MODULE -- this module
         MANDATORY-GROUPS {
            mplsLcAtmStdIfGroup
         }

         -- mplsLcAtmStdInterfaceConfTable

         OBJECT      mplsLcAtmStdCtrlVpi
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdCtrlVci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdUnlabTrafVpi
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdUnlabTrafVci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdVcMerge
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdIfConfRowStatus
         SYNTAX       RowStatus { active(1) }
         MIN-ACCESS   read-only
         DESCRIPTION "Write access is not required."

         OBJECT      mplsLcAtmVcDirectlyConnected
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmLcAtmVPI
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcAtmStdIfConfStorageType
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."
      ::= { mplsLcAtmStdCompliances 2 }


   -- Units of conformance.

   mplsLcAtmStdIfGroup OBJECT-GROUP
      OBJECTS {
                mplsLcAtmStdCtrlVpi,
                mplsLcAtmStdCtrlVci,
                mplsLcAtmStdUnlabTrafVpi,
                mplsLcAtmStdUnlabTrafVci,
                mplsLcAtmStdVcMerge,
                mplsLcAtmVcDirectlyConnected,
                mplsLcAtmLcAtmVPI,
                mplsLcAtmStdIfConfRowStatus,
                mplsLcAtmStdIfConfStorageType
       }
      STATUS  current
      DESCRIPTION
             "Collection of objects needed for MPLS LC-ATM
              interface configuration."
      ::= { mplsLcAtmStdGroups 1 }

   END

   MPLS-LC-FR-STD-MIB DEFINITIONS ::= BEGIN
   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE
         FROM SNMPv2-SMI
      MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF
      RowStatus, StorageType
         FROM SNMPv2-TC
      mplsInterfaceIndex
         FROM MPLS-LSR-STD-MIB
      DLCI
         FROM FRAME-RELAY-DTE-MIB
      mplsStdMIB
         FROM MPLS-TC-STD-MIB
      ;
   mplsLcFrStdMIB MODULE-IDENTITY

      LAST-UPDATED "200601120000Z"  -- 12 January 2006
      ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group"
      CONTACT-INFO
          "        Thomas D. Nadeau
                   Cisco Systems, Inc.
           Email:  tnadeau@cisco.com

                   Subrahmanya Hegde
           Email:  subrah@cisco.com

           General comments should be sent to mpls@uu.net
          "
      DESCRIPTION
          "This MIB module contains managed object definitions for
           MPLS Label-Controlled Frame-Relay interfaces as defined
           in (RFC3034).

           Copyright (C) The Internet Society (2006).  This
           version of this MIB module is part of RFC 4368; see
           the RFC itself for full legal notices."

      -- Revision history.
      REVISION
           "200601120000Z"  -- 12 January 2006
      DESCRIPTION
          "Initial revision, published as part of RFC 4368."
      ::= { mplsStdMIB 10 }

   -- Top level components of this MIB module.
   -- Tables, Scalars, Notifications, Conformance

   mplsLcFrStdNotifications OBJECT IDENTIFIER ::= { mplsLcFrStdMIB 0 }
   mplsLcFrStdObjects       OBJECT IDENTIFIER ::= { mplsLcFrStdMIB 1 }
   mplsLcFrStdConformance   OBJECT IDENTIFIER ::= { mplsLcFrStdMIB 2 }

   -- MPLS LC-FR Interface Configuration Table.
   mplsLcFrStdInterfaceConfTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsLcFrStdInterfaceConfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
          "This table specifies per-interface MPLS LC-FR
           capability and associated information.  In particular,
           this table sparsely extends the MPLS-LSR-STD-MIB's
           mplsInterfaceConfTable."
      ::= { mplsLcFrStdObjects 1 }

   mplsLcFrStdInterfaceConfEntry OBJECT-TYPE
      SYNTAX        MplsLcFrStdInterfaceConfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
          "An entry in this table is created by an LSR for
           every interface capable of supporting MPLS LC-FR.
           Each entry in this table will exist only if a
           corresponding entry in ifTable and mplsInterfaceConfTable
           exists.  If the associated entries in ifTable and
           mplsInterfaceConfTable are deleted, the corresponding
           entry in this table must also be deleted shortly
           thereafter."
      INDEX       { mplsInterfaceIndex }
         ::= { mplsLcFrStdInterfaceConfTable 1 }

   MplsLcFrStdInterfaceConfEntry ::= SEQUENCE {
      mplsLcFrStdTrafficMinDlci           DLCI,
      mplsLcFrStdTrafficMaxDlci           DLCI,
      mplsLcFrStdCtrlMinDlci              DLCI,
      mplsLcFrStdCtrlMaxDlci              DLCI,
      mplsLcFrStdInterfaceConfRowStatus   RowStatus,
      mplsLcFrStdInterfaceConfStorageType StorageType
   }

   mplsLcFrStdTrafficMinDlci OBJECT-TYPE
      SYNTAX        DLCI
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the minimum DLCI value over which this
           LSR is willing to accept traffic on this
           interface."
      ::= { mplsLcFrStdInterfaceConfEntry 1 }

   mplsLcFrStdTrafficMaxDlci OBJECT-TYPE
      SYNTAX        DLCI
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the max DLCI value over which this
           LSR is willing to accept traffic on this
           interface."
      ::= { mplsLcFrStdInterfaceConfEntry 2 }

   mplsLcFrStdCtrlMinDlci OBJECT-TYPE
      SYNTAX        DLCI
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the min DLCI value over which this
           LSR is willing to accept control traffic
           on this interface."
      ::= { mplsLcFrStdInterfaceConfEntry 3 }

   mplsLcFrStdCtrlMaxDlci OBJECT-TYPE
      SYNTAX        DLCI
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This is the max DLCI value over which this
           LSR is willing to accept control traffic
           on this interface."
      ::= { mplsLcFrStdInterfaceConfEntry 4 }

   mplsLcFrStdInterfaceConfRowStatus OBJECT-TYPE
      SYNTAX        RowStatus
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "This object is used to create and
           delete entries in this table.  When configuring
           entries in this table, the corresponding ifEntry and
           mplsInterfaceConfEntry MUST exist beforehand.  If a manager
           attempts to create an entry for a corresponding
           mplsInterfaceConfEntry that does not support LC-FR,
           the agent MUST return an inconsistentValue error.
           If this table is implemented read-only, then the
           agent must set this object to active(1) when this
           row is made active.  If this table is implemented
           writable, then an agent MUST not allow modification
           to its objects once this value is set to active(1),
           except to mplsLcFrStdInterfaceConfRowStatus and
           mplsLcFrStdInterfaceConfStorageType."
      ::= { mplsLcFrStdInterfaceConfEntry 5 }

    mplsLcFrStdInterfaceConfStorageType OBJECT-TYPE
      SYNTAX        StorageType
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
          "The storage type for this conceptual row.
           Conceptual rows having the value 'permanent(4)'
           need not allow write-access to any columnar
           objects in the row."
      DEFVAL { nonVolatile }
      ::= { mplsLcFrStdInterfaceConfEntry 6 }

   -- End of mplsLcFrStdInterfaceConfTable

   -- Module compliance.

   mplsLcFrStdCompliances
      OBJECT IDENTIFIER ::= { mplsLcFrStdConformance 1 }

   mplsLcFrStdGroups
      OBJECT IDENTIFIER ::= { mplsLcFrStdConformance 2 }


   -- Compliance requirement for full compliance

   mplsLcFrStdModuleFullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
          "Compliance statement for agents that provide
           full support for MPLS-LC-FR-STD-MIB.  Such
           devices can be monitored and also be configured
           using this MIB module."
      MODULE -- this module
         MANDATORY-GROUPS {
            mplsLcFrStdIfGroup
         }

         OBJECT       mplsLcFrStdInterfaceConfRowStatus
         SYNTAX       RowStatus { active(1), notInService(2) }
         WRITE-SYNTAX RowStatus { active(1), notInService(2),
                                  createAndGo(4), destroy(6)
                                }
         DESCRIPTION "Support for createAndWait and notReady is
                      not required."

      ::= { mplsLcFrStdCompliances 1 }


   -- Compliance requirement for read-only implementations.

   mplsLcFrStdModuleReadOnlyCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
          "Compliance requirement for implementations that only
           provide read-only support for MPLS-LC-FR-STD-MIB.
           Such devices can be monitored but cannot be configured
           using this MIB module.
          "

      MODULE -- this module
         MANDATORY-GROUPS {
            mplsLcFrStdIfGroup
         }

         -- mplsLcFrStdInterfaceConfTable

         OBJECT     mplsLcFrStdTrafficMinDlci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT     mplsLcFrStdTrafficMaxDlci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcFrStdCtrlMinDlci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT      mplsLcFrStdCtrlMaxDlci
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."

         OBJECT       mplsLcFrStdInterfaceConfRowStatus
         SYNTAX       RowStatus { active(1) }
         MIN-ACCESS   read-only
         DESCRIPTION "Write access is not required."

         OBJECT      mplsLcFrStdInterfaceConfStorageType
         MIN-ACCESS  read-only
         DESCRIPTION
             "Write access is not required."
      ::= { mplsLcFrStdCompliances 2 }

   -- Units of conformance.

   mplsLcFrStdIfGroup OBJECT-GROUP
      OBJECTS {
           mplsLcFrStdTrafficMinDlci,
           mplsLcFrStdTrafficMaxDlci,
           mplsLcFrStdCtrlMinDlci,
           mplsLcFrStdCtrlMaxDlci,
           mplsLcFrStdInterfaceConfRowStatus,
           mplsLcFrStdInterfaceConfStorageType
       }
      STATUS  current

      DESCRIPTION
             "Collection of objects needed for MPLS LC-FR
              interface configuration."
      ::= { mplsLcFrStdGroups 1 }

   END